package language_basic

import "fmt"

/*

1.1 布尔型bool
布尔型的值只可以是常量 true 或者 false。一个简单的例子：var b bool = true
*/
func PrintBool() {
	var a bool = false
	fmt.Println("打印bool", a)
}

/*
1.2 数值型
1、整数型

int8 有符号 8 位整型 (-128 到 127) 长度：8bit
int16 有符号 16 位整型 (-32768 到 32767)
int32 有符号 32 位整型 (-2147483648 到 2147483647)
int64 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)

uint8 无符号 8 位整型 (0 到 255) 8位都用于表示数值：
uint16 无符号 16 位整型 (0 到 65535)
uint32 无符号 32 位整型 (0 到 4294967295)
uint64 无符号 64 位整型 (0 到 18446744073709551615)

int和uint:根据底层平台，表示32或64位整数。除非需要使用特定大小的整数，否则通常应该使用int来表示整数。 大小:32位系统32位，64位系统64位。 范围:-2147483648到2147483647的32位系统和-9223372036854775808到9223372036854775807的64位系统。
*/
func PrintInt() {
	var a int = 65535
	fmt.Println("打印整型", a)
}

/*
2、浮点型
float32
IEEE-754 32位浮点型数

float64
IEEE-754 64位浮点型数

complex64
32 位实数和虚数

complex128
64 位实数和虚数
*/
func PrintFloat() {
	var a float32 = 0.23333
	fmt.Println("打印浮点", a)
}

/*
3、其他
byte
类似 uint8
rune
类似 int32
uint
32 或 64 位
int
与 uint 一样大小
uintptr
无符号整型，用于存放一个指针

*/
/*
1.3 字符串型
字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。Go语言的字符串的字节使用UTF-8编码标识Unicode文本
Go中的字符串是一个字节的切片。可以通过将其内容封装在“”中来创建字符串。
strings包，可以有很多操作string的函数。
strconv包，可以实现string和其他数值类型之间的转换。
*/
func PrintString() {
	var str string
	str = "哈哈哈，不错哦"
	fmt.Println("打印字符串", str)
}

/*
1.4 数据类型转换：Type Convert
语法格式：Type(Value)
常数：在有需要的时候，会自动转型
变量：需要手动转型	T(V)
注意点：兼容类型可以转换

二、 复合类型(派生类型)
1、指针类型（Pointer） 2、数组类型 3、结构化类型(struct) 4、Channel 类型 5、函数类型 6、切片类型 7、接口类型（interface） 8、Map 类型
*/
